
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 商品详情数据
    productDetail:null,
    pageId:null,
    // 需要的数据
    needData:[],
    // 当前轮播页数
    currentPage:1,
    // 总页数
    totalPage:null,
    // 商品ID
    productId:null,
    // 当前商品数据
    currentProduct:null,
    // 购物车商品数量
    cartProductNum:0,
    // 购物车长度
    cartLength:0,
    // 商品详情前商品推荐标题高亮
    active:0,
    // 商品详情前商品推荐数据
    recommendData:null,
    // 米粉点评团数据
    remarkData:null,
    // 入选排行榜数据
    topData:null,
    // 小轮播图片
    samllBanner:null,
    // 商品介绍图片
    productIntroduce:null,
    // 介绍图片具体数据
    detailPicture:null,
    // 商品详情图片与规格参数高亮下标
    cutActive:0,
     // 轮播图指示器高亮下标
     current:0,
    //  显示顶部锚点
    isShow:false,
   
    // 锚点高亮下标
    anchorActive:0,
    // 底部操作栏数据
    operationData:[
      {
        icon:"shop-o",
        text:"首页"
      },
      {
        icon:"service-o",
        text:"客服"
      },
      {
        icon:"shopping-cart-o",
        text:"购物车"
      }
    ],
    bannerData:[
      {
        Img:"//cdn.cnbj1.fds.api.mi-img.com/mi-mall/84a465bbe4ef6a5bf2f429eaf289a8d1.jpg?f=webp&w=1080&h=540&bg=F3EFE4"
      },
      {
        Img:"//cdn.cnbj1.fds.api.mi-img.com/mi-mall/447e5958b7d65621921597843aceca78.jpg?f=webp&w=1080&h=540&bg=FFFFFF"
      },
      {
        Img:"//cdn.cnbj1.fds.api.mi-img.com/mi-mall/1fdf5f4c327d71ce20dc6f8cc5250d94.jpg?f=webp&w=1080&h=540&bg=DAEAEA"
      },
      {
        Img:"//cdn.cnbj1.fds.api.mi-img.com/mi-mall/9cbe454df0f4b3a29530d311dfc75c18.jpg?f=webp&w=1080&h=540&bg=6FA2C1"
      },
      {
        Img:"//cdn.cnbj1.fds.api.mi-img.com/mi-mall/65fe58ff056ed8ce643f70d1367b6d6c.jpg?f=webp&w=1080&h=540&bg=A1117"
      },
      {
        Img:"//cdn.cnbj1.fds.api.mi-img.com/mi-mall/ec79106bd79389bf10d7c7541f913759.jpg?f=webp&w=1080&h=540&bg=50912"
      }
    ],
    // 锚点标题
    anchorTitle:[
      {
        title:"商品"
      },
      {
        title:"评价"
      },
      {
        title:"详情"
      },
      {
        title:"推荐"
      }
    ]
  },
  onPageScroll(e) {
    // console.log(e);
        this.scrollSize = e.scrollTop
      // console.log(this.scrollSize);
      if(this.scrollSize==0){
        this.setData({
          isShow:false
        })
      }else{
        this.setData({
          isShow:true
        })
      }
    },
    
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

    // 监听筛选组件距离顶部的距离
const query = wx.createSelectorQuery()
query.select('.anchor').boundingClientRect()
    query.exec((res)=>{
        this.topRange = res[0].top //获取距离顶部的高度并保存
        console.log(this.topRange);
    })



    // 接收商品详情数据
    console.log("options",options);
    this.data.productDetail = JSON.parse(decodeURIComponent(options.productDetail))
    console.log(this.data.productDetail);
    
    let pageId = this.data.productDetail.goods_info[0].page_id
    let productIntroduce = this.data.productDetail.goods_tpl_datas[pageId]
    this.setData({
      pageId,
      // 商品介绍图片
      productIntroduce
    })
    for(let i=0;i<this.data.productIntroduce.sections.length;i++){
      if(this.data.productIntroduce.sections[i].body.name!==undefined){
        // console.log(this.data.productIntroduce.sections[i].body.name);
        this.setData({
          topData:this.data.productIntroduce.sections[i].body.name
        })
      }else if(this.data.productIntroduce.sections[i].body.title!==undefined&&this.data.productIntroduce.sections[i].body.title=="米粉点评团"){
        // console.log(i);
        this.setData({
          remarkData:this.data.productIntroduce.sections[i].body.items
        })
        // console.log(this.data.remarkData);
      }else if(this.data.productIntroduce.sections[i].body.title!==undefined){
        this.setData({
          samllBanner:this.data.productIntroduce.sections[i].body.items
        })
      }
    }
    // console.log(this.data.pageId);
    // console.log(this.data.productIntroduce);
   
    // console.log(this.data.productDetail.goods_tpl_datas[pageId]);
    // 拿出需要的数据
    this.setData({
      // pageId,
      productId:this.data.productDetail.goods_info[0].product_id,
      totalPage:this.data.productDetail.goods_share_datas.gallery_view.length,
      // pageId:this.data.productDetail.goods_info[0].page_id,

      needData:[
        {
          bannerImg:this.data.productDetail.goods_share_datas.gallery_view,
          price:[
            {
          // 原价
              originalPrice:this.data.productDetail.goods_info[0].market_price,
               // 优惠价
          preferentialPrice:this.data.productDetail.goods_info[0].price,
          // 是否存在优惠价格
          isSale:this.data.productDetail.goods_info[0].reduce_price,
            }
          ],
          productId:this.data.productDetail.goods_info[0].product_id,
          name:this.data.productDetail.product_info.name,
          Img:this.data.productDetail.goods_info[0].image_share,
          productDesc:this.data.productDetail.product_info.sell_point_desc,
         
            // 评价词条
            evaluateEntry:this.data.productDetail.goods_share_datas.comments.detail.comment_tags,
            // 好评率
            favorableRate:this.data.productDetail.goods_share_datas.comments.detail.satisfy_per,
          // 用户评论列表
          userComment:this.data.productDetail.goods_share_datas.comments.list,
          // 过滤拿三张图片
          userComment : this.data.productDetail.goods_share_datas.comments.list.filter(item => {
            return item.comment_images.splice(3) ;
          }),
         
         
        }
      ],
      
    })
    console.log(this.data.needData);

    // 获取当前商品数据
    this.data.currentProduct={
      productId:this.data.needData[0].productId,
      name:this.data.needData[0].name,
      currentPrice:this.data.needData[0].price[0].preferentialPrice,
      oldPrice:this.data.productDetail.goods_info[0].market_price,
      img:this.data.needData[0].Img,
      count:1
    }
    // console.log(this.data.currentProduct);


  

  },
  onReachBottom() {
    // console.log(11111);
    this.getDetailPicture()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

    /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    // 详情前推荐
    this.getrecommend()
    // 获取购物车长度
    
      // 遍历购物车本地存储
      // 如果存在这个数据,那至少有一个商品
      if(wx.getStorageSync('cart')){
        // 获取购物车长度
        this.setData({
          cartLength:wx.getStorageSync('cart').length
        })
        // 如果长度为0,表示用户删除了购物车所有商品,使徽标不显示
        if(this.data.cartLength===0){
          this.setData({
            cartProductNum:''
          })
        }

        let cart = wx.getStorageSync('cart')
        console.log(cart);
        // 遍历购物车数组 将每一个商品的数量相加
        cart.forEach(item=>{
          this.setData({
            cartProductNum:this.data.cartProductNum+=item.count
          })
        })

      }else{
        this.setData({
          cartProductNum:''
        })
      }
  },
  skip(e) {
    let index = e.target.dataset.index
    if(index==this.data.anchorActive){
      return
    }
    if(index==0){
      wx.pageScrollTo({ selector: ".swiper-box", offsetTop: 0})
    }else if(index==1){
      wx.pageScrollTo({ selector: ".userEvaluation", offsetTop	: 525,
      success:function(){

        console.log("评价");
        
        },
        fail:err=>{
          console.log(err);
        }
     })
    }else if(index==2){
      wx.pageScrollTo({ selector: ".introduce_parameter", offsetTop: 100 })
    }
    this.setData({
        anchorActive:index,
     
    })
},

     // 根据商品ID获取商品详情数据
     getProductdetail(e){
      // 获取点击的商品ID
      let productid = e.currentTarget.dataset.id
      wx.showLoading({
        title: '数据加载中',
      })
      wx.request({
        method:'GET',
        url:"https://apis.netstart.cn/xmsc/miproduct/view",
        data:{
          commodity_id:productid
        },
        success:res =>{
          console.log("recommendProductdetail res=>",res);
          // 转string
          let productDetail = JSON.stringify(res.data.data)
          // 成功后跳转详情页
          wx.navigateTo({
            url: '../../pages/productDetail/productDetail?productDetail='+encodeURIComponent(productDetail),
          })
          this.setData({
            Productdetail:res.data.data
          })
          wx.hideLoading()
        },
        fail:err=>{
          console.log("recommendProductdetail err=>",err);
          wx.hideLoading()
        }
      })
    },




  // 顶部轮播
  change(e){
    // console.log(this.data.totalPage);
    // console.log(e);
    this.setData({
      currentPage:e.detail.current+1
    })
  },
  // 跳购物车
  goShoppingCart(){
   wx.switchTab({
     url: '../shoppingcart/shoppingcart',
   })
  },
  // 跳首页
  goHome(){
    wx.switchTab({
      url: '../home/home',
    })
  },
  // 加入购物车
  addShoppingCart(e){
    // 查询用户登录状态,已登录允许加入,未登录提示并跳转登录页面
    if(wx.getStorageSync('_id')){
      wx.cloud.callFunction({
        name:"find_login_status",
        data:{
          _id:wx.getStorageSync('_id')
        }
      }).then(res=>{
        console.log("用户登录状态",res);
        // 已经登录
        if(res.result.data.length>0&&res.result.data[0].loginStatus){
          wx.showToast({
            title: '加入成功',
          })
          setTimeout(()=>{
            // this.data.cartProductNum +=1
            // 获取购物车数组
            if(wx.getStorageSync('cart')){
              let cart = wx.getStorageSync('cart')
              let initialVal = 0
              console.log(cart);
                cart.forEach(item=>{
                  this.setData({
                    cartProductNum:initialVal+=item.count
                  })
            })
            }else{
              this.setData({
                cartProductNum:''
              })
            }
            
          },100)

            // 获取购物车的缓存数组（没有数据，则赋予一个空数组）
    let cartList = wx.getStorageSync('cart') || [];
    // 先判断购物车中是否有该商品
    // 如果购物车中有数据
    if(cartList.length>0){
      console.log("购物车存在商品");
      // 遍历购物车数组
      for(let i in cartList){
        // 判断购物车内的每一项商品的id和点击的商品id是否相等
        if(cartList[i].productId==e.currentTarget.dataset.productid){
          // 如果有该商品,数量加一
          cartList[i].count +=1
          console.log("存在该商品,数量加1");
          console.log("购物车列表",cartList);
          // 把购物车数据存入本地
          try{
            wx.setStorageSync('cart', cartList)
          } catch(e){
            console.log("id是否相同出错",e);
          }
          return
        }
      }
      // 遍历完发现购物车中没有该商品,就加进去
      console.log("购物车中没有该商品,添加新商品");
      cartList.push(this.data.currentProduct)
      console.log("购物车列表",cartList);

      // 
    }else{
      console.log("购物车没有该商品数据,添加新的商品");
      // 把当前商品数据push进购物车数组
      cartList.push(this.data.currentProduct);
      console.log(cartList);
    }
    // 最后把购物车数据存入缓存
      try{
        wx.setStorageSync('cart', cartList)
        // 返回（在if内使用return，跳出循环节约运算，节约性能）
        return;
      } catch(e){
        console.log(e);
      }
    console.log(this.data.currentProduct);
    // 未登录
        }else{
          wx.showToast({
            title: '请先登录!',
            icon: 'error',
            duration: 2000
          })
          setTimeout(()=>{
            wx.navigateTo({
              url: '../login/login',
            })
          },1000)
      
         
         
        }
      }).catch(err=>{
        console.log("用户登录状态",err);
      })
    }
  },
  // 商品详情前推荐
  getrecommend(){
    // console.log(this.data.productId);
    wx.request({
      method:"GET",
      url: 'https://apis.netstart.cn/xmsc/miproduct/recom',
      data:{
        commodity_id:this.data.productId
      },
      success:res=>{
        console.log("商品详情前推荐res",res);
        // 处理数组 分为四个
        this.data.recommendData = res.data.data
        let newList = []
        for(let i=0; i<this.data.recommendData.related_recommend.data.length;i+=6){
          newList.push(this.data.recommendData.related_recommend.data.slice(i,i+6))
        }
        this.data.recommendData.related_recommend.data = newList
        this.setData({
          recommendData:this.data.recommendData
        })
        // console.log(this.data.recommendData);
      },
      fail:err=>{
        console.log("商品详情前推荐err",err);
      }
    })
  },
  
  // 商品详情前推荐
  clickTab(e){
    this.setData({
      active:e.detail.index
    })
  },

    // 自定义方法
    setSwiperIndex(event){
      // console.log(event);
      this.setData({
        current:event.detail.current
      })
    },

    // 获取商品详情图片的方法
    getDetailPicture(){
      wx.showLoading({
        title: '数据加载中',
      })
    let pageId = this.data.productDetail.goods_info[0].page_id;
    // console.log(pageId);

     // 商品介绍图片
    let productIntroduce = this.data.productDetail.goods_tpl_datas[pageId]
    // console.log(productIntroduce);
      for(let i=0;i<productIntroduce.sections.length;i++){
        if(productIntroduce.sections[i].body.items!==undefined){
          console.log(productIntroduce.sections[i].body.items);
          this.setData({
            detailPicture : productIntroduce.sections[i].body.items
          })
        }
      }

      wx.hideLoading()
    },

    cutTab(e){
      // console.log(e);
      if(this.data.cutActive==e.currentTarget.dataset.index){
        return
      }

      this.setData({
        cutActive:e.currentTarget.dataset.index
      })

    },

    // 跳评论详情
    goCommentDetail(e){
      wx.showLoading({
        title: '数据加载中',
      })
      console.log(e);
      wx.request({
        method:"GET",
        url: 'https://apis.netstart.cn/xmsc/comment/view',
        data:{
          comment_id:e.currentTarget.dataset.commentid
        },
        success:res=>{
          console.log("商品评论详情res",res);
          wx.hideLoading()
          if(res.data.data!==undefined){
            // 转string
          let CommentDetailData = JSON.stringify([res.data.data])

            wx.navigateTo({
              url: '../commentDetail/commentDetail?CommentDetailData='+encodeURIComponent(CommentDetailData)
            })
          }else{
            wx.showToast({
              title: '获取评论详情失败',
              icon:"error"
            })
          }
        },
        fail:err=>{
          wx.hideLoading()
          console.log("商品评论详情err",err);
        }
      })

    
    },
    // 立即购买
    immediatelyBuy(){
      // 总价总数
      let total = [
        {
          totalMoney:this.data.currentProduct.currentPrice,
          cartProductNum:this.data.currentProduct.count
        }
      ]
      wx.setStorageSync('total', total)

      // 将当前商品信息存入本地
      wx.setStorageSync('singleData', JSON.stringify(this.data.currentProduct))
      // 跳转结算
      wx.navigateTo({
        url: '../close/close?isbuy=true',
      })
    },

    // 跳全部评论
    goAllComment(){
      
      wx.navigateTo({
        url: '../allComment/allComment?ProductId='+this.data.productId,
      })
    }


})